#include <stdio.h>

// 矩阵相加函数
void add_matrices(const int n_rows, const int n_cols, 
                  const double mat1[n_rows][n_cols], 
                  const double mat2[n_rows][n_cols], 
                  double result[n_rows][n_cols]) {
    for (int i = 0; i < n_rows; i++) {
        for (int j = 0; j < n_cols; j++) {
            result[i][j] = mat1[i][j] + mat2[i][j];
        }
    }
}

// 矩阵相乘函数。
void matrix_mul(const int n_rows, const int n_cols, const int p, 
                const double matrix1[n_rows][p], 
                const double matrix2[p][n_cols], 
                double matrix_product[n_rows][n_cols]) {
    // 初始化结果矩阵为 0
    for (int i = 0; i < n_rows; i++) {
        for (int j = 0; j < n_cols; j++) {
            matrix_product[i][j] = 0.0;
        }
    }

    // 执行矩阵乘法.
    for (int i = 0; i < n_rows; i++) {
        for (int j = 0; j < n_cols; j++) {
            for (int k = 0; k < p; k++) {
                matrix_product[i][j] += matrix1[i][k] * matrix2[k][j];
            }
        }
    }
} 